import java.util.Arrays;

/**
 * @Author 1928
 * @Date 2022/4/20 9:16
 * @Description  数组
 */

public class TextWei {
    /**
     * 区域拷贝数组
     * @param args
     */
    public static void main1(String[] args) {
        int[] array ={1,2,3,4,5};
        int[] ret =Arrays.copyOfRange(array,1,3);
        System.out.println(Arrays.toString(ret));
    }

    /**
     * 求数组均值
     * @param array
     * @return
     */
    public static double avg(int[] array) {
        int sum = 0;
        for (int i = 0; i < array.length; i++) {
            sum +=array[i];
        }
        return sum*1.0/array.length;
    }

    public static void main2(String[] args) {
        int[] array={1,2,3,4,5};
        System.out.println(avg(array));
    }


    /**
     * 实现一个方法 sum, 以数组为参数, 求数组所有元素之和
     * @param array1
     * @return
     */
    public static int sum(int[] array1) {
        int sum = 0;
        for (int i = 0; i < array1.length; i++) {
            sum +=array1[i];
        }
        return sum;
    }
    public static void main3(String[] args) {
        int[] array1={1,2,3,4,5};
        System.out.println(sum(array1));
    }
    /**
     * 实现一个方法 transform, 以数组为参数, 循环将数组中的每个元素 乘以 2
     * 并设置到对应的数组元素上. 例如 原数组为 {1, 2, 3}, 修改之后为 {2, 4, 6}
     */
    public static int[] transform(int[] sum) {
        for (int i = 0; i < sum.length; i++) {
            sum[i] *=2;
        }
        return sum;
    }

    public static void main4(String[] args) {
        int[] ary ={1,2,3,4,5};
        System.out.println(Arrays.toString(transform(ary)));
    }
    /**
     * 实现一个方法 printArray, 以数组为参数, 循环访问数组中的每个元素, 打印每个元素的值.
     */
    public static void printArray(int[] arry){
        for (int i = 0; i < arry.length; i++) {
            System.out.print(arry[i]+" ");
        }
    }

    public static void main5(String[] args) {
        int [] arry = {1,2,3,4};
        printArray(arry);
    }

    /**
     * 创建一个 int 类型的数组, 元素个数为 100, 并把每个元素依次设置为 1 - 100
     * @param arry
     * @return
     */
    public static int[] fun(int[] arry) {
        for (int i = 0; i < arry.length; i++) {
            arry[i]=i+1;
        }
        return arry;
    }

    public static void main6(String[] args) {
        int[] arry = new int[100];
        System.out.println(Arrays.toString(fun(arry)));
    }

    /**
     * 实现一个方法 copyOf, 对一个整型数组进行拷贝, 得到一个新的数组.
     * @param arry
     * @return
     */
    public static int[] copyof(int[] arry){
        int[] arry2 = new int[arry.length];
        for (int i = 0; i < arry.length; i++) {
            arry2[i] = arry[i];
        }
        return arry2;
    }

    public static void main7(String[] args) {
        int[] arry = {1, 2, 3, 4};
        int[] cop = copyof(arry);
        System.out.println(Arrays.toString(arry));
    }

    /**
     * 实现一个方法 toString, 把一个整型数组转换成字符串. 例如数组 {1, 2, 3} , 返回的字符串为 "[1, 2, 3]", 注意 逗号 的位置和数量.
     * @param array
     * @return
     */
    public static String toString(int[] array){
        String sum = "[";
        for (int i = 0; i < array.length; i++) {
            sum +=array[i];
            if (i<array.length-1){
                sum += ",";
            }
        }
        sum += "]";
        return sum;
    }

    public static void main(String[] args) {
        int[] array = {1,2,3};
        String sum = toString(array);
        System.out.println(sum);
    }
}
